package practice;

import java.util.Scanner;

/*
题目：输入某年某月某日，判断这一天是这一年的第几天？
程序分析：以3月5日为例，应该先把前两个月的加起来，然后再加上5天即本年的第几天，特殊情况，
闰年且输入月份大于3时需考虑多加一天。
 */
public class practice14 {

    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);

        System.out.println("请输入年份：");
        int year = s.nextInt();
        System.out.println("请输入月份：");
        int month = s.nextInt();
        System.out.println("请输入日期：");
        int day = s.nextInt();

        int sum = getDate(month, day);
        //判断如果是闰年且月份大于2月时，天数加1
        if (year % 4 == 0 && month > 2){
            sum = sum + 1;
        }
        System.out.println("这是" + year + "年的第" + sum + "天");
    }

    public static int getDate(int month, int day){
        int sum = 0;

        while (month > 1){
            if (month == 3){
                // 当月份大于3月时，加2月28天
                sum += 28;
            }else if (month == 2 || month ==4 || month == 6 || month == 8 || month == 9 || month == 11){
                sum += 31;
            }else{
                sum += 30;
            }
            month--;
        }
        sum += day;

        return sum;
    }

}
